const {CronJob} = require("cron");
const log4js = require("./logger");
logger = log4js.getLogger("info")

/**
 * 扩展Date的Format函数
 * 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
 * @param {[type]} fmt [description]
 */
Date.prototype.Format = function (fmt) { //author:
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}


new CronJob(
    "*/5 * * * * *",
    () => {
        current_time = (new Date()).Format("yyyy-MM-dd hh:mm:ss")
        logger.info(`SLA定时任务开始启动，执行时间为：${current_time}`); // 程序定时执行时间时间
        const {exec} = require('child_process');
        exec('node src/splitLogFile.js', (error, stdout, stderr) => {
            if (error) {
                logger.error(`命令执行错误: ${error}`);
                return;
            }
            logger.info(`输出标准为: ${stdout}`);
        });
    },
    () => {
    },
    true,
    "Asia/Shanghai"
);

